package com.zw.a.basic.a10.demo01_collection;

import java.util.ArrayList;
import java.util.Collection;

//案例: 演示Collection集合入门.
/*
    集合简介:
        概述:
            集合就是用来存储多个同类型元素的容器, 它的长度是可变的.
        体系:
            Collection: 单列集合的顶层接口.
                List: 特点: 有序, 可重复.
                    ArrayList:
                    LinkedList:
                Set:  特点: 无序, 唯一
                    HashSet
            Map:    双列集合的顶层接口.
                    HashMap:
        记忆:
            1. 集合的顶层都是接口, 例如: Collection, List, Set, Map
            2. 以后但凡我们学习一个新的继承体系, 学习思路都是: 学顶层, 用底层.
                顶层: 是整个继承体系的共性内容.
                底层: 才是具体的体现, 实现.
            3. 关于泛型:
                概述: 泛指某种特定的数据类型.
                作用: 泛型一般是结合集合来一起使用的, 用来限定集合中存储什么类型的数据.
                    Collection<String>      说明集合中只能存储字符串.
                    Collection<Integer>     说明集合中只能存储整数.
                注意事项:
                    1. 前后泛型必须一致.
                    2. 或者后边的泛型可以不写, 这个是JDK1.7的特性, 叫: 菱形泛型.
                    3. 泛型必须是引用类型.
 */
public class Demo01 {
    public static void main(String[] args) {
        //1.创建Collection集合对象, 用来存储字符串.
        //Collection<String> coll = new ArrayList<String>();
        //JDK1.7以后, 可以简化成: 如下格式
        Collection<String> coll = new ArrayList<>();
        //2.调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:"hello", "world", "java"
        coll.add("hello");
        coll.add("world");
        coll.add("java");
        //3.通过输出语句, 直接打印集合对象, 并观察结果.
        System.out.println("coll: " + coll);        //ArrayList类已经重写了Object#toString()方法.
    }
}
